home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.table;
-
- import java.awt.AWTEvent;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.event.InputEvent;
- import java.awt.event.MouseEvent;
- import java.io.IOException;
- import java.io.ObjectOutputStream;
- import java.util.Enumeration;
- import javax.accessibility.Accessible;
- import javax.accessibility.AccessibleContext;
- import javax.swing.JComponent;
- import javax.swing.JTable;
- import javax.swing.ToolTipManager;
- import javax.swing.UIManager;
- import javax.swing.event.ChangeEvent;
- import javax.swing.event.ListSelectionEvent;
- import javax.swing.event.TableColumnModelEvent;
- import javax.swing.event.TableColumnModelListener;
- import javax.swing.plaf.TableHeaderUI;
-
- public class JTableHeader extends JComponent implements TableColumnModelListener, Accessible {
- private static final String uiClassID = "TableHeaderUI";
- protected JTable table;
- protected TableColumnModel columnModel;
- protected boolean reorderingAllowed;
- protected boolean resizingAllowed;
- protected boolean updateTableInRealTime;
- protected transient TableColumn resizingColumn;
- protected transient TableColumn draggedColumn;
- protected transient int draggedDistance;
-
- public JTableHeader() {
- this((TableColumnModel)null);
- }
-
- public JTableHeader(TableColumnModel var1) {
- if (var1 == null) {
- var1 = this.createDefaultColumnModel();
- }
-
- this.setColumnModel(var1);
- this.initializeLocalVars();
- this.updateUI();
- }
-
- public void columnAdded(TableColumnModelEvent var1) {
- this.resizeAndRepaint();
- }
-
- public int columnAtPoint(Point var1) {
- return this.getColumnModel().getColumnIndexAtX(var1.x);
- }
-
- public void columnMarginChanged(ChangeEvent var1) {
- this.resizeAndRepaint();
- }
-
- public void columnMoved(TableColumnModelEvent var1) {
- ((Component)this).repaint();
- }
-
- public void columnRemoved(TableColumnModelEvent var1) {
- this.resizeAndRepaint();
- }
-
- public void columnSelectionChanged(ListSelectionEvent var1) {
- }
-
- protected TableColumnModel createDefaultColumnModel() {
- return new DefaultTableColumnModel();
- }
-
- public AccessibleContext getAccessibleContext() {
- if (super.accessibleContext == null) {
- super.accessibleContext = new AccessibleJTableHeader(this);
- }
-
- return super.accessibleContext;
- }
-
- public TableColumnModel getColumnModel() {
- return this.columnModel;
- }
-
- public TableColumn getDraggedColumn() {
- return this.draggedColumn;
- }
-
- public int getDraggedDistance() {
- return this.draggedDistance;
- }
-
- public Rectangle getHeaderRect(int var1) {
- TableColumnModel var2 = this.getColumnModel();
- if (var1 >= 0 && var1 < var2.getColumnCount()) {
- int var3 = 0;
- int var4 = 0;
- int var5 = this.getColumnModel().getColumnMargin();
-
- for(Enumeration var6 = this.getColumnModel().getColumns(); var6.hasMoreElements(); ++var4) {
- TableColumn var7 = (TableColumn)var6.nextElement();
- if (var4 == var1) {
- return new Rectangle(var3, 0, var7.getWidth() + var5, ((Component)this).getSize().height);
- }
-
- var3 += var7.getWidth() + var5;
- }
-
- return new Rectangle();
- } else {
- throw new IllegalArgumentException("Column index out of range");
- }
- }
-
- public boolean getReorderingAllowed() {
- return this.reorderingAllowed;
- }
-
- public boolean getResizingAllowed() {
- return this.resizingAllowed;
- }
-
- public TableColumn getResizingColumn() {
- return this.resizingColumn;
- }
-
- public JTable getTable() {
- return this.table;
- }
-
- public String getToolTipText(MouseEvent var1) {
- String var2 = null;
- Point var3 = var1.getPoint();
- int var4;
- if ((var4 = this.columnModel.getColumnIndexAtX(var3.x)) != -1) {
- TableColumn var5 = this.columnModel.getColumn(var4);
- TableCellRenderer var6 = var5.getHeaderRenderer();
- Component var7 = var6.getTableCellRendererComponent(this.getTable(), var5.getHeaderValue(), false, false, -1, var4);
- if (var7 instanceof JComponent) {
- Rectangle var9 = this.getHeaderRect(var4);
- var3.translate(-var9.x, -var9.y);
- MouseEvent var8 = new MouseEvent(var7, ((AWTEvent)var1).getID(), ((InputEvent)var1).getWhen(), ((InputEvent)var1).getModifiers(), var3.x, var3.y, var1.getClickCount(), var1.isPopupTrigger());
- var2 = ((JComponent)var7).getToolTipText(var8);
- }
- }
-
- if (var2 == null) {
- var2 = ((JComponent)this).getToolTipText();
- }
-
- return var2;
- }
-
- public TableHeaderUI getUI() {
- return (TableHeaderUI)super.ui;
- }
-
- public String getUIClassID() {
- return "TableHeaderUI";
- }
-
- public boolean getUpdateTableInRealTime() {
- return this.updateTableInRealTime;
- }
-
- protected void initializeLocalVars() {
- ((JComponent)this).setOpaque(true);
- this.table = null;
- this.reorderingAllowed = true;
- this.resizingAllowed = true;
- this.draggedColumn = null;
- this.draggedDistance = 0;
- this.resizingColumn = null;
- this.updateTableInRealTime = true;
- ToolTipManager var1 = ToolTipManager.sharedInstance();
- var1.registerComponent(this);
- }
-
- protected String paramString() {
- String var1 = this.reorderingAllowed ? "true" : "false";
- String var2 = this.resizingAllowed ? "true" : "false";
- String var3 = this.updateTableInRealTime ? "true" : "false";
- return super.paramString() + ",draggedDistance=" + this.draggedDistance + ",reorderingAllowed=" + var1 + ",resizingAllowed=" + var2 + ",updateTableInRealTime=" + var3;
- }
-
- public void resizeAndRepaint() {
- ((JComponent)this).revalidate();
- ((Component)this).repaint();
- }
-
- public void setColumnModel(TableColumnModel var1) {
- if (var1 == null) {
- throw new IllegalArgumentException("Cannot set a null ColumnModel");
- } else {
- TableColumnModel var2 = this.columnModel;
- if (var1 != var2) {
- if (var2 != null) {
- var2.removeColumnModelListener(this);
- }
-
- this.columnModel = var1;
- var1.addColumnModelListener(this);
- this.resizeAndRepaint();
- }
-
- }
- }
-
- public void setDraggedColumn(TableColumn var1) {
- this.draggedColumn = var1;
- }
-
- public void setDraggedDistance(int var1) {
- this.draggedDistance = var1;
- }
-
- public void setReorderingAllowed(boolean var1) {
- this.reorderingAllowed = var1;
- }
-
- public void setResizingAllowed(boolean var1) {
- this.resizingAllowed = var1;
- }
-
- public void setResizingColumn(TableColumn var1) {
- this.resizingColumn = var1;
- }
-
- public void setTable(JTable var1) {
- this.table = var1;
- }
-
- public void setUI(TableHeaderUI var1) {
- if (super.ui != var1) {
- super.setUI(var1);
- ((Component)this).repaint();
- }
-
- }
-
- public void setUpdateTableInRealTime(boolean var1) {
- this.updateTableInRealTime = var1;
- }
-
- public void updateUI() {
- this.setUI((TableHeaderUI)UIManager.getUI(this));
- this.resizeAndRepaint();
- ((Container)this).invalidate();
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- var1.defaultWriteObject();
- if (super.ui != null && this.getUIClassID().equals("TableHeaderUI")) {
- super.ui.installUI(this);
- }
-
- }
- }
-